Stack Overflow在2021年推出了开发人员调查。如果当时你有关注技术头条新闻,会发JavaScript和Python连续占据了主导地位。但是,这些不是我关注的语言。 名单上还有另一种语言引起了我的注意:Golang。 它不是世界上最流行的编程语言。使用它的开发人员相对较少,这有一些很好的理由。 Go是一种相对较新的语言。这是一种简单的语言,不像其他语言具有大量的语法糖。它没有任何流行的框架来自动化繁琐的样板。直到四年前,它才有标准化的软件包管理。 尽管Go在受欢迎程度方面仅排名第12位,但它在开发人员想要学习的语言中却排名第三(这里排名TypeScript算在JavaScript类别中)。HackerRank也支持这一点。根据他们从2020年开始的研究,Golang已经连续三年成为最需要学习的语言。(注:HackerRank 成立于2012年,是一个面向程序员和黑客的社交网络,提供了各种编程谜题、游戏病毒和现实中的编程难题及挑战,让黑客们在该社区中进行交流讨论、接受挑战等。)不仅如此,Go还是最受欢迎的十大语言之一,也是GitHub上最受欢迎的第三大明星语言。正如我之前提到的,Go仍然有很多问题。在当前的编程语言环境中,有更多的通用性和健壮性选项可供选择。那么,为什么Go会慢慢接管软件行业呢?
尽管Go有缺陷,但它有很多值得喜爱的地方。例如并发模型、丰富的第三方支持、命令行工具的健壮性等。但如果没有Go最好的特性:易用性,所有这些都将是徒劳的。正如我之前提到的,Go是一种简单的语言。它的简单就是它的力量。它只有25个关键字,但每个都是通用的。以关键字for为例。它是为循环和迭代保留的关键字。它可以用来迭代数组(array)或映射(map)。Go是一种静态语言,传统上它更容易学习。特别是对于那些学习过Python或JavaScript等动态语言的人。
但是Go从其充满活力的“弟兄”那里学习了很多优点。它支持(有限的)动态分配,是一种通过垃圾收集器进行内存管理的语言。将这一点与简洁的语法结合起来,就形成了一种易于学习和使用的语言。 Follow the money这个因素也可以成为我们思考为什么开发人员喜欢Go语言的另一个原因。根据HackerRank的研究,使用Go语言的开发人员胡平均工资相比增加了33%。不仅如此,10%的职位希望应聘者具有Go语言开发经验。开发人员有学习它的经济动机。 需要指出的一点是,相关性并不意味着因果关系。仅仅因为你知道Go并不一定意味着你会赚更多的钱。但是,让我们来看看为什么存在这种相关性。 Golang最初由谷歌开发,并于2009年发布,它已经慢慢但肯定地赢得了软件行业的信任。随着微服务架构的兴起,越来越多的大型科技公司采用了它。Uber、Twitch和Slack等公司都在自己的技术栈中使用了Go。即使是以采用和宣传单一架构而闻名的公司,如GitHub和Shopify也采用了这种架构。 所有这些公司支付的薪水都是市场最高的,吸引了成千上万有抱负的软件工程师。过去,想要在这些技术巨头工作的开发人员需要学习Java、C或C++等语言。但老实说,大多数开发人员不喜欢每天使用这些语言。你只需要看看开发人员调查就知道了。大多数开发人员害怕使用C、C++和Java——来源:StackOverflow调查Go为那些想为大型科技公司工作,又不想受制于Java的工程师提供了另一种选择。 但这仍然留下一个未解决的问题:为什么越来越多的公司开始选择Go语言?答案很简单。云计算改变了科技行业是一种轻描淡写。组织不再需要大量的服务器并雇用团队来维护它们。云提供商已将服务器变成了一种商品。 云计算的兴起导致对技术的需求,这些技术可以帮助团队在云上管理和扩展其体系架构。于是,云原生诞生了。 Terraform、Docker和Kubernetes等技术使微服务在云端部署、扩展和管理应用程序变得比以往任何时候都更容易。它们是Git背后最流行的开发工具。它们都是用Go打造的。 不仅仅是Docker和Kubernetes。绝大多数云原生计算基金会(CNCF)赞助的项目都是用Go开发的。 Go是为云和微服务构建的。它是为多核服务器设计的。它可以轻松地交叉编译成各种体系架构和操作系统,并且它是轻量级的。它编译的二进制文件比Java中的类似文件小10倍。它们不仅更小,而且编译速度也更快。 Kubernetes有超过500万行的应用程序代码。如果用其他语言编写,编译可能需要几十分钟到几个小时。用Go,只需要一两分钟。根据谷歌关于云原生架构的5条原则:“几乎所有云架构都基于微服务架构”。随着60%的组织已将其工作负载移至云中,越来越多的组织开始依赖Go——无论他们是否直接使用Go。
目前尚不能确定Go是否会比JavaScript、Python或Java更受欢迎。但这不是必须的。编程语言不是赢家通吃的市场。 Go解决了一个关键需求。一种既能提供静态语言的速度、安全性和可扩展性,又能提供动态语言的易用性的语言。它还开辟了一个重要的细分市场。 每种语言都有其独特之处。如果说JavaScript拥有web前端,Python拥有数据科学,Java拥有企业应用,那么Go拥有云。 尽管只有十年的历史,但Golang已经取得了成就。随着云计算主导地位的扩大,Go的未来看起来比以往任何时候都更加光明。 因此,网络安全从业者们也更需要了解和熟悉Go语言。
如果你是一名想学习Go语言的网络安全从业者或者是想入行网络安全的Go语言开发人员,这里可以给大家推荐一本书《Go黑帽子 渗透测试编程之道》,本书从安全从业人员和黑客的角度出发,带学习者全面了解Go 编程语言。同时,它也提供了一系列实用的策略,以帮助你使用Go的功能来测试系统、构建和自动化工具以满足你的需求,并提高你的进攻性安全技能。 Go 黑帽子
渗透测试编程之道
清华大学出版社 2021-09-01
https://item.jd.com/13443844.html
碳泽信息
新一代智能安全运营平台
电话:400-1788-258
销售咨询:sales@tanze.net.cn
技术支持:support@tanze.net.cn
官网:http://www.tanze.net.cn